package org.bee.string;

public class StringUtils {
    /**
     * 首字母大写
     * @param input 传入字符串
     * @return 首字母大写后的字符串
     */
    public static String firstUpper(String input) {
        if (input == null || input.isEmpty()) {
            return input;
        }
        return input.substring(0, 1).toUpperCase() + input.substring(1);
    }

    /**
     * 首字母小写
     * @param input 传入字符串
     * @return 首字母小写后的字符串
     */
    public static String firstLower(String input) {
        if (input == null || input.isEmpty()) {
            return input;
        }
        return input.substring(0, 1).toLowerCase() + input.substring(1);
    }

    /**
     * 转首字母小写驼峰
     * @param input 传入字符串
     * @return 首字母小写驼峰
     */
    public static String lowerCamelCase(String input) {
        if (input == null || input.isEmpty()) {
            return "";
        }
        String[] parts = input.split("_");
        StringBuilder camelCaseString = new StringBuilder(parts[0].toLowerCase());
        for (int i = 1; i < parts.length; i++) {
            camelCaseString.append(parts[i].substring(0, 1).toUpperCase())
                    .append(parts[i].substring(1).toLowerCase());
        }
        return camelCaseString.toString();
    }

    /**
     * 转首字母大写驼峰
     * @param input 传入字符串
     * @return 首字母大写驼峰
     */
    public static String pascalCase(String input) {
        if (input == null || input.isEmpty()) {
            return "";
        }
        String[] parts = input.split("_");
        StringBuilder pascalCaseString = new StringBuilder(parts[0].substring(0, 1).toUpperCase()).append(parts[0].substring(1).toLowerCase());
        for (int i = 1; i < parts.length; i++) {
            pascalCaseString.append(parts[i].substring(0, 1).toUpperCase())
                    .append(parts[i].substring(1).toLowerCase());
        }
        return pascalCaseString.toString();
    }

    /**
     * 为空或者null
     * @param string 字符串
     * @return 是否为空或者null
     */
    public static boolean isEmpty(String string) {
        return string == null || string.isEmpty();
    }

    /**
     * 非空非null
     * @param string 字符串
     * @return 是否不为空且不为null
     */
    public static boolean isNotEmpty(String string) {
        return !StringUtils.isEmpty(string);
    }

}
